Skip to content

App migrations - #41

Merged
KenVanHoeylandt merged 4 commits into
mainfrom
develop
Aug 25, 2026
Merged

App migrations#41
KenVanHoeylandt merged 4 commits into
mainfrom
develop

Conversation

@KenVanHoeylandt

@KenVanHoeylandt KenVanHoeylandt commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Improvements

    • Improved event processing across many apps for more responsive queued-event handling and cleaner shutdowns.
    • Preserved existing interactions, including close actions, dialogs, results, and controls.
    • Improved ESP-NOW Bridge Wi-Fi event handling and radio toggling.
  • App Updates

    • Incremented versions for Brainfuck, Breakout, Calculator, Diceware, Epub Reader, ESP-NOW Bridge, GPIO, Graphics Demo, Hello World, M5UnitTest, Magic 8-Ball, Media Keys, Mystify Demo, Serial Console, Snake, TamaTac, Todo List, and 2048.
  • Tools

    • Added a command-line tool for consistently updating app versions.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Application event loops were migrated from direct app_event_await calls to TaskEventGroup waits followed by app_event_poll draining. Subscription, unsubscription, construction, and destruction results are checked. Existing close, dialog, game, reader, and device event handling remains. App manifest versions were updated. Tools/bump-versions.py was added to bump manifest versions across the Apps directory.

Merge Risk: 🟡 Moderate · up to d49d4

The PR can access invalid state during EspNowBridge shutdown, retains a concrete lint failure, and includes an error-dialog path that may block indefinitely. Merge should wait for these bounded correctness and availability issues to be fixed or explicitly accepted.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 6.90% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 29 functions across 21 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is related to the main changes, which migrate multiple apps to the task event-group and polling APIs. It is broad but still identifies the primary change category.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b60b41f9-1596-4f55-9be2-79b7b0bf4836

📥 Commits

Reviewing files that changed from the base of the PR and between e49f6d5 and 8312da3.

📒 Files selected for processing (37)
  • Apps/Brainfuck/main/Source/main.cpp
  • Apps/Brainfuck/manifest.properties
  • Apps/Breakout/main/Source/main.cpp
  • Apps/Breakout/manifest.properties
  • Apps/Calculator/main/Source/main.cpp
  • Apps/Calculator/manifest.properties
  • Apps/Diceware/main/Source/main.cpp
  • Apps/Diceware/manifest.properties
  • Apps/EpubReader/main/Source/main.cpp
  • Apps/EpubReader/manifest.properties
  • Apps/EspNowBridge/main/Source/main.cpp
  • Apps/EspNowBridge/manifest.properties
  • Apps/GPIO/main/Source/main.cpp
  • Apps/GPIO/manifest.properties
  • Apps/GraphicsDemo/main/Source/Main.cpp
  • Apps/GraphicsDemo/manifest.properties
  • Apps/HelloWorld/main/Source/main.c
  • Apps/HelloWorld/manifest.properties
  • Apps/M5UnitTest/main/Source/main.cpp
  • Apps/M5UnitTest/manifest.properties
  • Apps/Magic8Ball/main/Source/main.cpp
  • Apps/Magic8Ball/manifest.properties
  • Apps/MediaKeys/main/Source/main.cpp
  • Apps/MediaKeys/manifest.properties
  • Apps/MystifyDemo/main/Source/Main.cpp
  • Apps/MystifyDemo/manifest.properties
  • Apps/SerialConsole/main/Source/main.cpp
  • Apps/SerialConsole/manifest.properties
  • Apps/Snake/main/Source/main.cpp
  • Apps/Snake/manifest.properties
  • Apps/TamaTac/main/Source/main.cpp
  • Apps/TamaTac/manifest.properties
  • Apps/TodoList/main/Source/main.cpp
  • Apps/TodoList/manifest.properties
  • Apps/TwoEleven/main/Source/main.cpp
  • Apps/TwoEleven/manifest.properties
  • Tools/bump-versions.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

Comment thread Apps/GraphicsDemo/main/Source/Main.cpp
Comment thread Tools/bump-versions.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Apps/EspNowBridge/main/Source/main.cpp (1)

72-73: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Destroy event_group after Wi-Fi unsubscription.

Line 72 destroys event_group before Line 73 calls espNowBridgeTeardown(). That teardown calls wifi_event_unsubscribe() for a subscription owned by this group. This violates the declared lifetime contract and can access a destroyed event group when the application closes.

Move task_event_group_destruct(&event_group) after espNowBridgeTeardown(ctx.get()).

Proposed fix
     window_manager_remove(window);
     check(app_event_unsubscribe(&sub) == ERROR_NONE);
-    task_event_group_destruct(&event_group);
     espNowBridgeTeardown(ctx.get());
+    task_event_group_destruct(&event_group);

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 380c672d-28b1-4d05-b5b2-17a3d13cbd8b

📥 Commits

Reviewing files that changed from the base of the PR and between 8312da3 and d49d4b3.

📒 Files selected for processing (6)
  • Apps/EspNowBridge/main/Source/EspNowBridge.cpp
  • Apps/EspNowBridge/main/Source/EspNowBridge.h
  • Apps/EspNowBridge/main/Source/main.cpp
  • Apps/GraphicsDemo/main/Source/Main.cpp
  • Apps/MystifyDemo/main/Source/Main.cpp
  • Tools/bump-versions.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • Tools/bump-versions.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

@KenVanHoeylandt
KenVanHoeylandt merged commit b0baa00 into main Aug 25, 2026
21 checks passed
@KenVanHoeylandt
KenVanHoeylandt deleted the develop branch August 25, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant